package hz.mobileproject.pda.network;

import java.util.Map;

import hz.mobileproject.pda.entity.response.Response_data;
import hz.mobileproject.pda.entity.response.Response_data_login;
import io.reactivex.Flowable;
import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.Header;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.PartMap;
import retrofit2.http.QueryMap;



public interface GankService {
//    GankResults
    //http://192.168.241.100:8080/PrisonAppB/rollCall/login
   /* @POST(Constance.PROJECT_NAME +  "/rollCall/login")
    Flowable<Login_user> getGankData(@Path("policeCode") int policeCode, @Path("password") String password);*/


    @POST(Constance.PROJECT_NAME +  "/rollCall/login")
    Flowable<Response_data_login> getloginData(@Body RequestBody msg);


//2.1.4	获取点名批次配置信息
    @POST(Constance.PROJECT_NAME +  "/rollCall/loadCnf")
    Flowable<Response_data> getloadCnf(@Body RequestBody msg,@Header("token") String token);



    //2.1.1	民警基本信息获取
    @POST(Constance.PROJECT_NAME +  "/rollCall/loadPoliceInfo")
    Flowable<Response_data> getloadPoliceInfo(@Body RequestBody msg,@Header("token") String token);


    //2.1.1	罪犯基本信息获取
    @POST(Constance.PROJECT_NAME +  "/eduTalk/loadPrisonerInfo")
    Flowable<Response_data> getloadPrisonerInfo(@Body RequestBody msg,@Header("token") String token);


    //2	2.1.2	分监区查询
    @POST(Constance.PROJECT_NAME +  "/rollCall/loadSubPrison")
    Flowable<Response_data> getloadSubPrison(@Body RequestBody msg,@Header("token") String token);


    //2.1.3	根据部门编号获取需要点名的罪犯列表
    @POST(Constance.PROJECT_NAME +  "/rollCall/loadPrisonerList")
    Flowable<Response_data> getloadPrisonerList(@Body RequestBody msg,@Header("token") String token);

    //2.1.6	开始点名
    @POST(Constance.PROJECT_NAME +  "/rollCall/start")
    Flowable<Response_data> getstart(@Body RequestBody msg,@Header("token") String token);

    //	2.1.7	点名数据
    @POST(Constance.PROJECT_NAME +  "/rollCall/calling")
    Flowable<Response_data> getcalling(@Body RequestBody msg,@Header("token") String token);
    //2.1.8	结束点名
    @POST(Constance.PROJECT_NAME +  "/rollCall/end")
    Flowable<Response_data> getend(@Body RequestBody msg,@Header("token") String token);


    //2.1.192 获取类型
    @GET(Constance.PROJECT_NAME +  "/rollCall/loadType")
    Flowable<Response_data> getloadtype(@Header("token") String token);
    //2.1.192 获取类型
    @POST(Constance.PROJECT_NAME +  "/rollCall/loadDept")
    Flowable<Response_data> getloadDept(@Body RequestBody msg,@Header("token") String token);


    //2.1.192 获取类型
    @POST(Constance.PROJECT_NAME +  "/rollCall/addTempFlow")
    Flowable<Response_data> addTempFlow(@Body RequestBody msg,@Header("token") String token);

    //2.1.10	获取点名记录
    @POST(Constance.PROJECT_NAME +  "/rollCall/queryRcLog")
    Flowable<Response_data> getqueryRcLog(@Body RequestBody msg,@Header("token") String token);


    //55 被扫码罪犯不在点名名单中调用接口
    @POST(Constance.PROJECT_NAME +  "/rollCall/backToPrison")
    Flowable<Response_data> backToPrison(@Body RequestBody msg,@Header("token") String token);


//    2.1.12	查询本部门所有教育谈话
    @POST(Constance.PROJECT_NAME +  "/eduTalk/queryEducationalLog")
    Flowable<Response_data> queryEducationalLog(@Body RequestBody msg,@Header("token") String token);

    //获取未谈话的接口
    @POST(Constance.PROJECT_NAME +  "/eduTalk/queryNoTalkPrisoner")
    Flowable<Response_data> getNoTalkPerson(@Body RequestBody msg,@Header("token") String token);


    //2.1.3	获取版本信息
    @POST("/" + Constance.PROJECT_NAME +"/upgrade/getVersion")
    Flowable<Response_data> getVersion(@Body RequestBody msg);


    //	2.6.1	获取谈话类型,
    @POST("/" + Constance.PROJECT_NAME +"/eduTalk/loadType")
    Flowable<Response_data> getType(@Body RequestBody msg,@Header("token") String token);

    //谈话教育文件上传
    @POST("/AddEducationTalkCtrl/uploadSound")
    @Multipart
    Flowable<Response_data> uploadFileInfosh(@QueryMap Map<String, String> options,
                                                 @PartMap Map<String, RequestBody> externalFileParameters,@Header("token") String token) ;

    //查询本部门所有教育谈话
    @POST("/" + Constance.PROJECT_NAME +"/eduTalk/queryEducationalLog")
    Flowable<Response_data> getAllTalk(@Body RequestBody msg,@Header("token") String token);

    //重点部位开始
    @POST("/" + Constance.PROJECT_NAME +"/keyParts/start")
    Flowable<Response_data> startImp(@Body RequestBody msg,@Header("token") String token);

    //查询重点部位检查列表
    @POST("/" + Constance.PROJECT_NAME +"/keyParts/queryKeyParts")
    Flowable<Response_data> searchImpList(@Body RequestBody msg,@Header("token") String token);

    //重点部位清点
    @POST("/" + Constance.PROJECT_NAME +"/keyParts/calling")
    Flowable<Response_data> impCalling(@Body RequestBody msg,@Header("token") String token);

    //重点部位结束
    @POST("/" + Constance.PROJECT_NAME +"/keyParts/end")
    Flowable<Response_data> impEnd(@Body RequestBody msg,@Header("token") String token);


    //所有已点重点部位
    @POST("/" + Constance.PROJECT_NAME +"/keyParts/queryKeyPartsLog")
    Flowable<Response_data> getAllYiDianImp(@Body RequestBody msg,@Header("token") String token);

    //返回键中的内容提取
    @POST("/" + Constance.PROJECT_NAME +"/keyParts/loadErrorType")
    Flowable<Response_data> getBackDialogContent(@Body RequestBody msg,@Header("token") String token);


    /*-------- 零星报备-----------*/
    //加载上报类型
    @POST("/" + Constance.PROJECT_NAME +"/eventReport/loadReportType")
    Flowable<Response_data> getEventLoadReportType(@Body RequestBody msg,@Header("token") String token);

    //分页加载所有记录
    @POST("/" + Constance.PROJECT_NAME +"/eventReport/query")
    Flowable<Response_data> getEventReportList(@Body RequestBody msg,@Header("token") String token);

    @POST("/" + Constance.PROJECT_NAME +"/eventReport/loadFaultCategory")
    Flowable<Response_data> getEventloadFaultCategory(@Body RequestBody msg,@Header("token") String token);

    //加载部门
    @POST("/" + Constance.PROJECT_NAME +"/app/loadDept")
    Flowable<Response_data> getEventloadDept(@Body RequestBody msg,@Header("token") String token);


    @POST("/" + Constance.PROJECT_NAME +"/eventReport/insert")
    Flowable<Response_data> insertEvent(@Body RequestBody msg,@Header("token") String token);

    @POST("/" + Constance.PROJECT_NAME +"/eventReport/delete")
    Flowable<Response_data> deleteEventReportListItem(@Body RequestBody msg,@Header("token") String token);


    /*-------------一键报警-----------------*/
    @POST("/" + Constance.PROJECT_NAME +"/eventReport/addAlarm")
    Flowable<Response_data> addAlarm(@Body RequestBody msg);


    /*------------网格化管理-------------*/
    @POST("/" + Constance.PROJECT_NAME +"/grid/processingList")
    Flowable<Response_data> processingList(@Body RequestBody msg);

    @POST("/" + Constance.PROJECT_NAME +"/grid/loadType")
    Flowable<Response_data> loadType(@Body RequestBody msg);

    @POST("/" + Constance.PROJECT_NAME +"/grid/handle")
    Flowable<Response_data> handle(@Body RequestBody msg);


    /*------------消防器材检查-------------------*/
    @POST("/" + Constance.PROJECT_NAME +"/fireFighting/start")  //开始
    Flowable<Response_data> startFireFighting(@Body RequestBody msg);

    @POST("/" + Constance.PROJECT_NAME +"/fireFighting/queryFireFighting")  //加载列表
    Flowable<Response_data> queryFireFighting(@Body RequestBody msg);

    @POST("/" + Constance.PROJECT_NAME +"/fireFighting/end")  //结束
    Flowable<Response_data> end(@Body RequestBody msg);


}
